/*
 * Copyright (C) 2011 The Code Bakers
 * Authors: Cleuton Sampaio e Francisco Rodrigues
 * e-mail: thecodebakers@gmail.com
 * Project: http://code.google.com/p/biomago/
 * Site: http://thecodebakers.blogspot.com
 *
 * Licensed under the GNU GPL, Version 3.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://gplv3.fsf.org/
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * @author Cleuton Sampaio e Francisco Rogrigues - thecodebakers@gmail.com
 */
package br.com.thecodebakers.biomago.business;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.util.Log;
import br.com.thecodebakers.biomago.model.Elemento;
import br.com.thecodebakers.biomago.persistence.FileAdapter;

public class BioBO {
	private List<Elemento> listaPessoas;
	private static BioBO instance;
	private static final String TAG = "BioBO";
	private Context context;
	
	protected BioBO() {
		super();
		Log.d(TAG, "Instanciou o BO.");
	}
	
	public static BioBO getInstance(Context context) {
		if (instance == null) {
			Log.d(TAG, "Vai criar nova instância do BO.");
			instance = new BioBO();
			instance.context = context;
			if (FileAdapter.retrievetList() != 0) {
				Log.d(TAG, "Retorno de leitura não zerado");
			}
			instance.listaPessoas = FileAdapter.lista;
		}
		Log.d(TAG, "Vai retornar uma referência para o BO.");
		return instance;
	}

	public List<Elemento> getListaPessoas() {
		return listaPessoas;
	}

	public void setListaPessoas(List<Elemento> listaPessoas) {
		this.listaPessoas = listaPessoas;
	}
	
	public int AddPessoa (Elemento pessoa) {
		this.listaPessoas.add(pessoa);
		int retorno = FileAdapter.saveList();
		return retorno;
	}
	
	public int deletePessoa (Elemento elemento) {
		this.listaPessoas.remove(elemento);
		int retorno = FileAdapter.saveList();
		return retorno;
	}
	
}
